package main.java.com.pzhu.test;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.*;

public class test {


    public static void main(String[] args) {
//        List<Integer> list = Arrays.asList(1, 2, 3, 6, 4, 8, 6, 5, 5);
//        System.out.println("原数组："+list);
//        list.sort(Integer::compareTo);
//        list.sort(Integer::compare);
//        System.out.println("排序后："+list);
//        Collections.reverse(list);
//        System.out.println("倒序后："+list);
//        System.out.println(LocalDate.now());
//        System.out.println(LocalTime.now());


        /**
         * 常见的缓存问题：
         * 1.缓存穿透：大量请求不存在的缓存数据，绕过缓存直接查询数据库，增加数据库压力
         *   对空结果也进行缓存，并设置较短的缓存时间。
         * 2.缓存雪崩：大量热点数据同时失效，造成数据库压力激增
         *   2.1、给缓存失效时间增加随机值，避免同时失效。
         *   2.2、使用多级缓存。
         *   2.3、设置热点数据永不过期。
         * 3.缓存击穿：热点缓存数据过期，造成大量访问数据库。
         *   3.1、设置热点数据永不过期
         *   3.2、使用互斥锁，使得只有一个线程查询数据库或更新缓存。
         * 4.数据不一致：缓存数据与数据库数据不一致
         *   先更新数据库、再删除或者更新缓存。
         * 5.缓存预热：启动系统时，缓存还无，大量数据访问系统
         *   系统启动时，主动加载数据到缓存。
         *
         */
    }
}
